Software testing is a process performed to provide stakeholders with information about the quality of the software product or service under test. Test techniques include, but are not limited to, the process of executing a program, project, or application in a controlled environment with a set of test inputs or execution conditions that when executed by the program, project, or application generate test results used to verify compliance with a specific requirement. Such testing may be implemented by test cases, often called test scripts, and is conducted with the intent of finding errors, flaws, and mistakes in the software.